On Stack Replacement
OSR
手順
ref 『コンパイラとバーチャルマシン』.icon p.154
そもそもあった問題
JITによって得られたオブジェクトコードをどのタイミングでインタプリタのものから切り替えるか
「今回の呼び出しで一定値を超えたのでJITコンパイルした」ことによって得られたオブジェクトコードを、次の呼び出し時に呼ぶのは簡単
難しいのは、永遠にwhileループが回って監視している系のもの
「次の呼び出し」がそもそもないが、ずっとインタプリタのものが動いている感じになっている
参考